//  回文链表

let head = [1,2,2,1]
// 将链表反转得到的新链表，如果和原链表相等，那就是回文链表
var isPalindrome = function(head) {
//     let left = head
//     // 后序遍历
//     function traverse(right) {
//         // 反转链表，递归
//        let res = traverse(right.next) 
//        res = res && (right.val === left.val)
//        left = left.next
//        return res
//     }

//   return  traverse(head)


// 反转链表
function reverse(head) {
    let pre = null, cur = head, nxt = head
    while (cur !== null) {
        nxt = cur.next
        cur.next = pre
        pre = cur
        cur = nxt
    }
    return pre
}
}